function pluralize(time, label) {
  if (time === 1) {
    return time + label
  }
  return time + label + 's'
}

export function timeAgo(time) {
  const between = Date.now() / 1000 - Number(time)
  if (between < 3600) {
    return pluralize(~~(between / 60), ' minute')
  } else if (between < 86400) {
    return pluralize(~~(between / 3600), ' hour')
  } else {
    return pluralize(~~(between / 86400), ' day')
  }
}

export function parseTime(time, cFormat) {
  time = new Date(time)
  if (arguments.length === 0) {
    return null
  }

  if ((time + '').length === 10) {
    time = +time * 1000
  }

  const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
  let date
  if (typeof time === 'object') {
    date = time
  } else {
    date = new Date(parseInt(time))
  }
  const formatObj = {
    y: date.getFullYear(),
    m: date.getMonth() + 1,
    d: date.getDate(),
    h: date.getHours(),
    i: date.getMinutes(),
    s: date.getSeconds(),
    a: date.getDay()
  }
  const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
    let value = formatObj[key]
    if (key === 'a') return ['一', '二', '三', '四', '五', '六', '日'][value - 1]
    if (result.length > 0 && value < 10) {
      value = '0' + value
    }
    return value || 0
  })
  return time_str
}

export function parseTimeImp(time, cFormat) {
  time = new Date(time)
  if (arguments.length === 0) {
    return null
  }

  if ((time + '').length === 10) {
    time = +time * 1000
  }

  const format = cFormat || '{y}-{m}-{d}'
  let date
  if (typeof time === 'object') {
    date = time
  } else {
    date = new Date(parseInt(time))
  }
  const formatObj = {
    y: date.getFullYear(),
    m: date.getMonth() + 1,
    d: date.getDate(),
    h: date.getHours(),
    i: date.getMinutes(),
    s: date.getSeconds(),
    a: date.getDay()
  }
  const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
    let value = formatObj[key]
    if (key === 'a') return ['一', '二', '三', '四', '五', '六', '日'][value - 1]
    if (result.length > 0 && value < 10) {
      value = '0' + value
    }
    return value || 0
  })
  return time_str
}

export function formatTime(time, option) {
  time = +time * 1000
  const d = new Date(time)
  const now = Date.now()

  const diff = (now - d) / 1000

  if (diff < 30) {
    return '刚刚'
  } else if (diff < 3600) { // less 1 hour
    return Math.ceil(diff / 60) + '分钟前'
  } else if (diff < 3600 * 24) {
    return Math.ceil(diff / 3600) + '小时前'
  } else if (diff < 3600 * 24 * 2) {
    return '1天前'
  }
  if (option) {
    return parseTime(time, option)
  } else {
    return d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分'
  }
}

/* 数字 格式化*/
export function nFormatter(num, digits) {
  const si = [
    { value: 1E18, symbol: 'E' },
    { value: 1E15, symbol: 'P' },
    { value: 1E12, symbol: 'T' },
    { value: 1E9, symbol: 'G' },
    { value: 1E6, symbol: 'M' },
    { value: 1E3, symbol: 'k' }
  ]
  for (let i = 0; i < si.length; i++) {
    if (num >= si[i].value) {
      return (num / si[i].value + 0.1).toFixed(digits).replace(/\.0+$|(\.[0-9]*[1-9])0+$/, '$1') + si[i].symbol
    }
  }
  return num.toString()
}

export function html2Text(val) {
  const div = document.createElement('div')
  div.innerHTML = val
  return div.textContent || div.innerText
}

export function toThousandslsFilter(num) {
  return (+num || 0).toString().replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','))
}

// 订单状态转化
export function getOrderStatus(str) {
  if (str === 'NEW') {
    return '新建'
  } else if (str === 'WAIT') {
    return '待发运'
  } else if (str === 'LOAD') {
    return '装车中'
  } else if (str === 'DELIVERED') {
    return '已发运'
  } else if (str === 'CANCEL') {
    return '已取消'
  } else if (str === 'OVER') {
    return '超期未处理'
  }
}

// 订单类型转化
export function getOrderType(str) {
  if (str === 'SEND') {
    return '送货'
  } else if (str === 'MERCHANT') {
    return '批发'
  } else if (str === 'RETAIL') {
    return '零售'
  } else if (str === 'DISTRIBUTOR') {
    return '经销商'
  }
}

// 订单支付状态
export function isPay(str) {
  str = parseInt(str)
  if (str === 1) {
    return '已付清'
  } else if (str === 0) {
    return '未付清'
  }
}

// 金额格式化
export function byCurrency(n) {
  return '￥ ' + n.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
}

// 付款方式
export function getPayway(str) {
  if (str === 'WECHAT') {
    return '微信支付'
  } else if (str === 'ALIPAY') {
    return '支付宝'
  } else if (str === 'ABC') {
    return '农业银行'
  } else if (str === 'CCB') {
    return '建设银行'
  } else if (str === 'CHINAPOST') {
    return '中国邮政'
  }
}

// 获取省市区的code 数组
export function getDestinationCodeArr(str) {
  return str.splite('_')
}

import store from '../store'
// 全局产品型号，颜色，材质等code和名字之间的转化
export function a(s) {
  const n = store.state
  for (const k in n) {
    for (let i = 0; i < n[k].length; i++) {
      if (s === n[k][i].value) {
        return n[k][i].name
      }
    }
  }
  console.log('没有匹配到', s)
}

// 获取产品信号
export function b(s) {
  if (s === 'table') {
    return '餐桌'
  } else if (s === 'chair') {
    return '餐椅'
  } else if (s === 'teaTable') {
    return '茶几'
  } else if (s === 'tvTable') {
    return '电视柜'
  }
}

// 获取产品信号
export function productType(s) {
  if (s === 'table') {
    return '餐桌'
  } else if (s === 'chair') {
    return '餐椅'
  } else if (s === 'tea') {
    return '茶几'
  } else if (s === 'tv') {
    return '电视柜'
  } else if (s === 'deskTop') {
    return '大理石台面'
  }
}

// 产品是否还在生产
export function productStatus(s) {
  const n = parseInt(s)
  if (n === 1) {
    return '正常'
  } else if (n === 0) {
    return '停产'
  }
}

// 用户状态
export function userStatus(s) {
  const n = parseInt(s)
  if (n === 1) {
    return '正常'
  } else if (n === 0) {
    return '锁定'
  }
}

